home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #5 & #6 / Amiga Plus CD - 1995 - No. 5 and 6.iso / tex / mf / inputs / dc / dxilwest.mf < prev    next >
Text File  |  1994-04-12  |  29KB  |  764 lines

  1. % This is DXILWEST.MF in text format, as of March 24, 1992
  2. %
  3. % DC fonts Version 1.1 (prerelease of EC fonts)
  4. %
  5. %          [ heavily borrowed from the Computer Modern Roman family of
  6. %            fonts by D. E. Knuth ]
  7. %
  8. % Content:
  9. %
  10. %   italic lowercase accented letters ("western part")
  11. %
  12. %    oct"340" .. oct"377"
  13. %
  14.  
  15.  
  16.  
  17. dcchar "Italic letter gravis a";
  18. beginchar(oct"340",9u#,x_height#+acc_height#,0);
  19. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  20. adjust_fit(0,0); pickup fine.nib;
  21. pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
  22. pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
  23. x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
  24. rt x4r=hround(w-2.5u+.5stem);
  25. top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
  26. filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  27.  & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
  28. x5=x4; x7=w; hook_out(5,6,7);  % closing hook
  29. filldraw circ_stroke z4e--z5e;  % stem
  30. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  31. % the accent
  32. lowercase_gravis(0,0,8,9);
  33. penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
  34.  
  35. dcchar "Italic letter acute a";
  36. beginchar(oct"341",9u#,x_height#+acc_height#,0);
  37. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  38. adjust_fit(0,0); pickup fine.nib;
  39. pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
  40. pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
  41. x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
  42. rt x4r=hround(w-2.5u+.5stem);
  43. top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
  44. filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  45.  & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
  46. x5=x4; x7=w; hook_out(5,6,7);  % closing hook
  47. filldraw circ_stroke z4e--z5e;  % stem
  48. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  49. % the accent
  50. lowercase_acute(-u,0,8,9);
  51. penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
  52.  
  53.  
  54. dcchar "Italic letter circumflex a";
  55. beginchar(oct"342",9u#,x_height#+acc_height#,0);
  56. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  57. adjust_fit(0,0); pickup fine.nib;
  58. pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
  59. pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
  60. x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
  61. rt x4r=hround(w-2.5u+.5stem);
  62. top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
  63. filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  64.  & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
  65. x5=x4; x7=w; hook_out(5,6,7);  % closing hook
  66. filldraw circ_stroke z4e--z5e;  % stem
  67. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  68. % the accent
  69. lowercase_hat(.5w,0,8,9,10,11,12);
  70. penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
  71.  
  72. dcchar "Italic letter tilde a";
  73. beginchar(oct"343",9u#,x_height#+acc_height#,0);
  74. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  75. adjust_fit(0,0); pickup fine.nib;
  76. pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
  77. pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
  78. x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
  79. rt x4r=hround(w-2.5u+.5stem);
  80. top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
  81. filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  82.  & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
  83. x5=x4; x7=w; hook_out(5,6,7);  % closing hook
  84. filldraw circ_stroke z4e--z5e;  % stem
  85. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  86. % the accent
  87. lowercase_tilde(-.5u,-1/6acc_height,8,9,10,11,12);
  88. penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
  89. %
  90. %
  91. %
  92.  
  93.  
  94. dcchar "Italic letter umlaut a";
  95. beginchar(oct"344",9u#,x_height#+acc_height#,0);
  96. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  97. adjust_fit(0,0); pickup fine.nib;
  98. pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
  99. pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
  100. x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
  101. rt x4r=hround(w-2.5u+.5stem);
  102. top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
  103. filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  104.  & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
  105. x5=x4; x7=w; hook_out(5,6,7);  % closing hook
  106. filldraw circ_stroke z4e--z5e;  % stem
  107. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  108. % the accent
  109. lowercase_umlaut(0,0,8,9,10,11);
  110. penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
  111.  
  112. dcchar "Italic letter circle a";
  113. beginchar(oct"345",9u#,x_height#+acc_height#,0);
  114. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  115. adjust_fit(0,0); pickup fine.nib;
  116. pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
  117. pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
  118. x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
  119. rt x4r=hround(w-2.5u+.5stem);
  120. top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
  121. filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  122.  & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
  123. x5=x4; x7=w; hook_out(5,6,7);  % closing hook
  124. filldraw circ_stroke z4e--z5e;  % stem
  125. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  126. % the accent
  127. lowercase_circle(x1,(1/3[x_height,h]+apex_o),8,9,10,11);
  128. penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
  129.  
  130. dcchar "Italic ligature ae";
  131. beginchar(oct"346",13u#,x_height#,0);
  132. italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
  133. adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
  134. forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
  135. numeric heavy_hair; heavy_hair=hround .2[hair,stem];
  136. numeric light_stem; light_stem=hround .75[hair,stem];
  137. pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
  138. pos3(light_stem,180); pos4(vair,270); pos5(hair,320);
  139. x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
  140. lft x3r=hround(.5w-.5light_stem); x5r=good.x(w-.5u); x6=x5;
  141. y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
  142. top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
  143. filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  144.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc of e
  145. pos7(light_stem,0); pos8(light_stem,0);
  146. x7=x8=x3; y7+.5light_stem=h+oo; y8-.5light_stem=-oo;
  147. pos7'(vair,-225); pos11(curve,-180); z7'=z7;
  148. pos12(vair,-90); pos3'(hair,0); z3'=z3;
  149. lft x11r=hround(1.5u-.5curve); x12=.5[x11,x3];
  150. y11=.3[y12,y7]; bot y12r=-oo;
  151. filldraw stroke z7'e{3(x11-x7),y11-y7}...pulled_arc.e(11,12)
  152.  & pulled_arc.e(12,3');  %  bowl of a
  153. filldraw z7l---z8l..z8r---z7r..cycle;  % stem
  154. penlabels(0,1,2,3,4,5,6,7,8,11,12); endchar;
  155.  
  156.  
  157. dcchar "Italic letter cedilla c";
  158. beginchar(oct"347",8u#,x_height#,0.875desc_depth#);
  159. italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
  160. adjust_fit(0,0); pickup fine.nib;
  161. pos0(flare,0); pos1(hair,0); pos2(vair,90);
  162. pos3(curve,180); pos4(vair,270); pos5(hair,320);
  163. x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
  164. lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
  165. y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0);  % bulb
  166. bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
  167. path p; p=z4{right}..z5..z6;
  168. filldraw stroke pulled_arc.e(2,3)
  169.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc
  170. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  171. % the accent
  172. lowercase_cedilla(x4,0,7,8,9,10,11);
  173. penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
  174.  
  175. dcchar "Italic letter gravis e";
  176. beginchar(oct"350",8u#,x_height#+acc_height#,0);
  177. italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
  178. adjust_fit(0,0); pickup fine.nib;
  179. numeric heavy_hair; heavy_hair=hround .2[hair,stem];
  180. pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
  181. pos3(curve,180); pos4(vair,270); pos5(hair,320);
  182. x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
  183. lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
  184. y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=x_height+oo; bot y4r=-oo;
  185. top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
  186. filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  187.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc
  188. %the accent
  189. lowercase_gravis(u,0,7,8);
  190. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  191. penlabels(0,1,2,3,4,5,6,7,8); endchar;
  192.  
  193. dcchar "Italic letter acute e";
  194. beginchar(oct"351",8u#,x_height#+acc_height#,0);
  195. italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
  196. adjust_fit(0,0); pickup fine.nib;
  197. numeric heavy_hair; heavy_hair=hround .2[hair,stem];
  198. pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
  199. pos3(curve,180); pos4(vair,270); pos5(hair,320);
  200. x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
  201. lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
  202. y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=x_height+oo; bot y4r=-oo;
  203. top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
  204. filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  205.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc
  206. %the accent
  207. lowercase_acute(if monospace:0 else: -u fi,0,7,8);
  208. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  209. penlabels(0,1,2,3,4,5,6,7,8); endchar;
  210.  
  211. dcchar "Italic letter circumflex e";
  212. beginchar(oct"352",8u#,x_height#+acc_height#,0);
  213. italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
  214. adjust_fit(0,0); pickup fine.nib;
  215. numeric heavy_hair; heavy_hair=hround .2[hair,stem];
  216. pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
  217. pos3(curve,180); pos4(vair,270); pos5(hair,320);
  218. x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
  219. lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
  220. y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=x_height+oo; bot y4r=-oo;
  221. top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
  222. filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  223.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc
  224. %the accent
  225. lowercase_hat(.5w,0,7,8,9,10,11);
  226. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  227. penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
  228.  
  229. dcchar "Italic letter umlaut e";
  230. beginchar(oct"353",8u#,x_height#+acc_height#,0);
  231. italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
  232. adjust_fit(0,0); pickup fine.nib;
  233. numeric heavy_hair; heavy_hair=hround .2[hair,stem];
  234. pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
  235. pos3(curve,180); pos4(vair,270); pos5(hair,320);
  236. x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
  237. lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
  238. y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=x_height+oo; bot y4r=-oo;
  239. top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
  240. filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  241.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc
  242. %the accent
  243. lowercase_umlaut(0,0,7,8,9,10);
  244. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  245. penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
  246.  
  247. dcchar "Italic letter gravis i";
  248. beginchar(oct"354",5u#,x_height#+acc_height#,0);
  249. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  250. adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
  251. x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
  252. if classic_serif:
  253.   hook_out(3,4,5)(skewed);  % hooks
  254.   top y2=x_height;
  255.   pos2(stem,0);
  256.   sloped_serif.l(2,3,a,1/3,jut,serif_drop);
  257. else:
  258.   hook_in(0,1,2)(skewed);
  259.   hook_out(3,4,5)(skewed);  % hooks
  260. fi
  261. filldraw stroke z2e--z3e;  % stem
  262. % the accent
  263. lowercase_gravis(if serifs: 0 else:.5u fi,0,6,7);
  264. penlabels(0,1,2,3,4,5,6,7); endchar;
  265.  
  266. dcchar "Italic letter acute i";
  267. beginchar(oct"355",5u#,x_height#+acc_height#,0);
  268. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  269. adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
  270. x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
  271. if classic_serif:
  272.   hook_out(3,4,5)(skewed);  % hooks
  273.   top y2=x_height;
  274.   pos2(stem,0);
  275.   sloped_serif.l(2,3,a,1/3,jut,serif_drop);
  276. else:
  277.   hook_in(0,1,2)(skewed);
  278.   hook_out(3,4,5)(skewed);  % hooks
  279. fi
  280. filldraw stroke z2e--z3e;  % stem
  281. % the accent
  282. lowercase_acute(0,0,6,7);
  283. penlabels(0,1,2,3,4,5,6,7); endchar;
  284.  
  285. dcchar "Italic letter circumflex i";
  286. beginchar(oct"356",5u#,x_height#+acc_height#,0);
  287. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  288. adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
  289. x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
  290. if classic_serif:
  291.   hook_out(3,4,5)(skewed);  % hooks
  292.   top y2=x_height;
  293.   pos2(stem,0);
  294.   sloped_serif.l(2,3,a,1/3,jut,serif_drop);
  295. else:
  296.   hook_in(0,1,2)(skewed);
  297.   hook_out(3,4,5)(skewed);  % hooks
  298. fi
  299. filldraw stroke z2e--z3e;  % stem
  300. % the accent
  301. lowercase_hat(.5[.x1r,x2l],0,6,7,8,9,10);
  302. penlabels(0,1,2,3,4,5,6,7,8,9,19); endchar;
  303.  
  304.  
  305.  
  306.  
  307. dcchar "Italic letter umlaut i";
  308. beginchar(oct"357",5u#,x_height#+acc_height#,0);
  309. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  310. adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
  311. x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
  312. if classic_serif:
  313.   hook_out(3,4,5)(skewed);  % hooks
  314.   top y2=x_height;
  315.   pos2(stem,0);
  316.   sloped_serif.l(2,3,a,1/3,jut,serif_drop);
  317. else:
  318.   hook_in(0,1,2)(skewed);
  319.   hook_out(3,4,5)(skewed);  % hooks
  320. fi
  321. filldraw stroke z2e--z3e;  % stem
  322. % the accent
  323. lowercase_umlaut(0,0,6,7,8,9);
  324. penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
  325.  
  326. dcchar "The letter eth";
  327. beginchar(oct"360",9u#,asc_height#,0);
  328. italcorr .7x_height#*slant + u ;
  329. adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
  330. oh := vround x_height ;
  331. penpos1(vair,90); penpos3(vair',-90);
  332. penpos2(curve,180); penpos4(curve,0);  penpos4'(hair,0) ;
  333. x2r=hround max(.5u,1.25u-.5curve);
  334. x4r=w-x2r; x1=x3=.5w; y1r=oh + vround 1.5oo; y3r=-oo;
  335. y2=y4=.5oh-vair_corr; y2l:=y4l:=.52oh;
  336. x4'l = x4l ; y4 = y4' ;
  337. penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  338.  & pulled_arc.e(3,4) -- pulled_arc.e(4',1) & cycle;  % bowl
  339. fill z4l .. {right}z4 -- z4r -- cycle ; % fill in a little gap!
  340. penpos5(.5[vair,hair],40) ;
  341. % x5 = 3u ; top y5r = h ; Breytt JP
  342. x5l = x2 ; top y5r = h ;
  343.  
  344. x7r = x4r;
  345. y7 = .95[x4,x1];
  346. penpos7(curve,0);
  347. penstroke z5e .. tension 1.1 and 0.9 .. z7e{down} .. z4e ;
  348. %penstroke z5e .. tension 1.1 and 0.9 .. z4e{down} ;
  349.  
  350. path p ;
  351. p = z5 .. tension 1.1 and 0.9 .. z7{down} ;
  352. %z6 = ((0,.6[x_height,asc_height]) -- (w,.5[x_height,asc_height])) JP
  353. z6 = ((0,.7[x_height,asc_height]) -- (w,.6[x_height,asc_height]))
  354.      intersectionpoint p ;
  355. penpos6'(.5[vair,hair],-60) ; penpos 6''(.5[vair,hair],-60) ;
  356. top y6''l = h ; z6'' = z6 + whatever*dir30;
  357. z6 = .5[z6',z6''] ; filldraw stroke z6'e -- z6''e ;
  358. penlabels(1,2,3,4,5,6,6',6''); endchar;
  359.  
  360. %dcchar "The letter eth";
  361. %beginchar(oct"360",9u#,asc_height#,0);
  362. %italcorr .7x_height#*slant;
  363. %adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
  364. %penpos1(vair,90); penpos3(vair',-90);
  365. %penpos2(curve,180); penpos4(curve,0);
  366. %penpos5(0.7curve,70);
  367. %penpos6(0.7curve,0);
  368. %penpos4'(0.7curve,0);
  369. %z4=z4';
  370. %x6r=x4r;y6=.2[y4,x_height];
  371. %x5=x2;
  372. %y5r=h;
  373. %x2r=hround max(.5u,1.25u-.5curve);
  374. %x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
  375. %y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
  376. %penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  377. % & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle;  % bowl
  378. %pickup fine.nib;
  379. %%filldraw stroke z4'e..z6e{up}..z5e;
  380. %penstroke pulled_arc.e(4,6);
  381. %penstroke pulled_arc.e(6,5);
  382. %z7=point 1.4 of path_.l;
  383. %z20=point 1.4 of path_.r;
  384. %z21=.5[z7,z20];
  385. %%x7  :=xpart(point 1.65 of (z4'..z6{up}..z5));
  386. %%y7  :=ypart(point 1.65 of (z4'..z6{up}..z5));
  387. %%x11 :=xpart(point 1.8 of (z4'..z6{up}..z5));
  388. %%y11 :=ypart(point 1.8 of (z4'..z6{up}..z5));
  389. %numeric aaa;
  390. %aaa := (angle direction 1.4 of path_.l)-90;
  391. %%z8=z7-(1stem,1stem);
  392. %y8=.4[y21,x_height];
  393. %z8=whatever[z21,z21+dir aaa];
  394. %pos8(bar,aaa-90);
  395. %pos9(bar,aaa-90);
  396. %0.5[z8,z9]=z21;
  397. %filldraw stroke z8e--z9e;
  398. %if serifs:
  399. %    pos10(vair,110);
  400. %    z10r=whatever[z5l,z5r];
  401. %    y10=.6[x_height,y5];
  402. %    pos11(vair,110);
  403. %    z11r=whatever[z5l,z5r];
  404. %    x11=x5;
  405. %    filldraw stroke z10e--z11e;
  406. %%   pos11(0.7curve,70);
  407. %%   pos10(vair,110);% angle(z5r-z5l)-90);
  408. %%   z10r=whatever[z5l,z5r];
  409. %%   y10=.5[x_height,y5];
  410. %%   arm(11,10,f,beak_darkness,0);
  411. %fi
  412. %penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
  413.  
  414. dcchar "Italic letter tilde n";
  415. beginchar(oct"361",10u#,x_height#+acc_height#,0);
  416. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  417. adjust_fit(0,0); pickup fine.nib;
  418. x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
  419. if classic_serif:
  420.   top y1=x_height; pos1(stem,0);
  421.   sloped_serif.l(1,2,a,1/3,jut,serif_drop);
  422. else:
  423.   hook_in(0,a,1);  % opening hook
  424. fi
  425. filldraw circ_stroke z2e--z1e;  % left stem
  426. x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4);  % arch
  427. x7=w; hook_out(5,6,7)(skewed);  % closing hook
  428. filldraw stroke z4e{down}..{-u,-x_height}z5e;  % right stem
  429. lowercase_tilde(0,-1/6acc_height,8,9,10,11,12);
  430. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
  431. penlabels(0,a,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
  432.  
  433. dcchar "Italic letter gravis o";
  434. beginchar(oct"362",9u#,x_height#+acc_height#,0);
  435. italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
  436. adjust_fit(0,0); pickup fine.nib;
  437. pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
  438. x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
  439. top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
  440. filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  441.  & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
  442. %the accent
  443. lowercase_gravis(u,0,5,6);
  444. math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); endchar;
  445.  
  446. dcchar "Italic letter acute o";
  447. beginchar(oct"363",9u#,x_height#+acc_height#,0);
  448. italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
  449. adjust_fit(0,0); pickup fine.nib;
  450. pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
  451. x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
  452. top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
  453. filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  454.  & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
  455. %the accent
  456. lowercase_acute(0,0,5,6);
  457. math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); endchar;
  458.  
  459. dcchar "Italic letter circumflex o";
  460. beginchar(oct"364",9u#,x_height#+acc_height#,0);
  461. italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
  462. adjust_fit(0,0); pickup fine.nib;
  463. pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
  464. x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
  465. top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
  466. filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  467.  & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
  468. %the accent
  469. lowercase_hat(x1,0,5,6,7,8,9);
  470. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  471. penlabels(1,2,3,4,7,8,9); endchar;
  472.  
  473.  
  474. dcchar "Italic letter tilde o";
  475. beginchar(oct"365",9u#,x_height#+acc_height#,0);
  476. italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
  477. adjust_fit(0,0); pickup fine.nib;
  478. pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
  479. x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
  480. top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
  481. filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  482.  & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
  483. %the accent
  484. lowercase_tilde(0,-1/6acc_height,5,6,7,8,9);
  485. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  486. penlabels(1,2,3,4,7,8,9); endchar;
  487.  
  488. dcchar "Italic letter umlaut o";
  489. beginchar(oct"366",9u#,x_height#+acc_height#,0);
  490. italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
  491. adjust_fit(0,0); pickup fine.nib;
  492. pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
  493. x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
  494. top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
  495. filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  496.  & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
  497. %the accent
  498. lowercase_umlaut(0,0,5,6,7,8);
  499. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  500. penlabels(1,2,3,4,7,8); endchar;
  501.  
  502. dcchar "Italic ligature oe";
  503. beginchar(oct"367",13u#,x_height#,0);
  504. italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
  505. adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
  506. forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
  507. numeric heavy_hair; heavy_hair=hround .2[hair,stem];
  508. pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
  509. pos3(stem,180); pos4(vair,270); pos5(hair,320);
  510. x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
  511. lft x3r=hround(.5w-.5stem); x5r=good.x(w-.5u); x6=x5;
  512. y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
  513. top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
  514. filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  515.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc of e
  516. pos11(vair,90); pos12(curve,180); pos13(vair,270); pos14(stem,360);
  517. x11=x13=.5[x12,x14]; lft x12r=hround(1.5u-.5curve); x14=x3;
  518. top y11=h+oo; y12=y14=.5[y11,y13]; bot y13=-oo;
  519. filldraw stroke pulled_arc.e(11,12) & pulled_arc.e(12,13)
  520.  & pulled_arc.e(13,14) & pulled_arc.e(14,11); % bowl
  521. penlabels(0,1,2,3,4,5,6); endchar;
  522.  
  523. dcchar "Italic Scandinavian letter o/slash";
  524. beginchar(oct"370",9u#,x_height#+.5desc_depth#,.5desc_depth#);
  525. italcorr h#*slant-u#+.5vair#;
  526. adjust_fit(0,0); pickup fine.nib;
  527. pos1(vair,90); pos2(fudged.stem,180);
  528. pos3(vair,270); pos4(fudged.stem,360);
  529. x1=x3=.5w; lft x2r=hround(1.5u-.5fudged.stem); x4=w-x2;
  530. top y1=x_height+oo; y2=y4=.5[y1,y3]; bot y3=-oo;
  531. filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  532.  & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
  533. x5=x4; x6=x2; y5=h; y6=-d;
  534. numeric theta; theta=angle(z5-z6)-90;
  535. pickup crisp.nib; pos5(vair,theta); pos6(vair,theta);
  536. filldraw stroke z5e--z6e;  % diagonal
  537. penlabels(1,2,3,4,5,6); endchar;
  538.  
  539. dcchar "Italic letter gravis u";
  540. beginchar(oct"371",9.5u#,x_height#+acc_height#,0);
  541. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  542. adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
  543. if classic_serif:
  544.    x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  545.    pos2(stem,0);
  546.    top y2=x_height;
  547. else:
  548.   x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  549.   hook_in(0,1,2)(skewed);  % opening hook
  550. fi
  551. pos2'(stem,-180); z2'=z2;
  552. pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
  553. pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
  554. x5=x6=x7; x9=w; hook_out(7,8,9);  % closing hook
  555. y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
  556. if classic_serif:
  557.   filldraw stroke z2
  558.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  559. else:
  560.   filldraw stroke z2'e{-u,-x_height}
  561.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  562. fi
  563. filldraw circ_stroke z6e--z7e;  % right stem
  564. if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
  565. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
  566. % the accent
  567. lowercase_gravis(0,0,10,11);
  568. penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
  569.  
  570. dcchar "Italic letter acute u";
  571. beginchar(oct"372",9.5u#,x_height#+acc_height#,0);
  572. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  573. adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
  574. if classic_serif:
  575.    x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  576.    pos2(stem,0);
  577.    top y2=x_height;
  578. else:
  579.   x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  580.   hook_in(0,1,2)(skewed);  % opening hook
  581. fi
  582. pos2'(stem,-180); z2'=z2;
  583. pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
  584. pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
  585. x5=x6=x7; x9=w; hook_out(7,8,9);  % closing hook
  586. y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
  587. if classic_serif:
  588.   filldraw stroke z2
  589.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  590. else:
  591.   filldraw stroke z2'e{-u,-x_height}
  592.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  593. fi
  594. filldraw circ_stroke z6e--z7e;  % right stem
  595. if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
  596. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
  597. % the accent
  598. lowercase_acute(0,0,10,11);
  599. penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
  600.  
  601.  
  602.  
  603.  
  604.  
  605. dcchar "Italic letter circumflex u";
  606. beginchar(oct"373",9.5u#,x_height#+acc_height#,0);
  607. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  608. adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
  609. if classic_serif:
  610.    x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  611.    pos2(stem,0);
  612.    top y2=x_height;
  613. else:
  614.   x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  615.   hook_in(0,1,2)(skewed);  % opening hook
  616. fi
  617. pos2'(stem,-180); z2'=z2;
  618. pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
  619. pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
  620. x5=x6=x7; x9=w; hook_out(7,8,9);  % closing hook
  621. y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
  622. if classic_serif:
  623.   filldraw stroke z2
  624.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  625. else:
  626.   filldraw stroke z2'e{-u,-x_height}
  627.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  628. fi
  629. filldraw circ_stroke z6e--z7e;  % right stem
  630. if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
  631. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
  632. % the accent
  633. lowercase_hat(.5w,0,10,11,12,13,14);
  634. penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
  635.  
  636. dcchar "Italic letter umlaut u";
  637. beginchar(oct"374",9.5u#,x_height#+acc_height#,0);
  638. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  639. adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
  640. if classic_serif:
  641.    x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  642.    pos2(stem,0);
  643.    top y2=x_height;
  644. else:
  645.   x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  646.   hook_in(0,1,2)(skewed);  % opening hook
  647. fi
  648. pos2'(stem,-180); z2'=z2;
  649. pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
  650. pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
  651. x5=x6=x7; x9=w; hook_out(7,8,9);  % closing hook
  652. y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
  653. if classic_serif:
  654.   filldraw stroke z2
  655.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  656. else:
  657.   filldraw stroke z2'e{-u,-x_height}
  658.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  659. fi
  660. filldraw circ_stroke z6e--z7e;  % right stem
  661. if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
  662. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
  663. % the accent
  664. lowercase_umlaut(0,0,10,11,12,13);
  665. penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
  666.  
  667. dcchar "Italic letter acute y";
  668. beginchar(oct"375",8.5u#,x_height#+acc_height#,desc_depth#);
  669. italcorr x_height#*slant+.5stem#-u#;
  670. adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
  671. x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  672. if classic_serif:
  673.   pos2(stem,0);
  674.   top y2=x_height;
  675. else:
  676.   hook_in(0,1,2)(skewed);  % opening hook
  677. fi
  678. pos2'(stem,-180); z2'=z2;
  679. pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
  680. pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
  681. pos7(stem,0); pos8(vair,-90);
  682. y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
  683. y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
  684. pos9(hair,-180); pos10(flare,-180); y9=-.5d;
  685. lft x9r=hround(2.75u-.5flare); bulb(8,9,10);  % bulb
  686. filldraw stroke z2'e{-u,-x_height}
  687.  ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  688. filldraw circ_stroke z6e---z7e...{left}z8e;  % right stem and link
  689. if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
  690. %the accent
  691. lowercase_acute(0,0,11,12);
  692. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
  693. penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
  694.  
  695. dcchar "Italic letter thorn";
  696. beginchar(oct"376",9u#+serif_fit#,asc_height#,desc_depth#);
  697. italcorr .7x_height#*slant+.5curve# -u# if math_fitting: -.5u# fi;
  698. adjust_fit(0,0);
  699. pickup tiny.nib; pos1(stem',0); pos2(stem,0);
  700. pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
  701. lft x1l=hround(2.5u-.5stem'); top y1=h;
  702. numeric edge; edge=rt x2r;
  703. pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
  704. pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
  705. rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
  706. y3=1/8[bar_height,x_height];
  707. x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
  708. rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
  709. x6l=x4l-.2u; bot y6r=-oo;
  710. x7=x3; y7=min(y3,y6+y4-y3+.6vair);
  711. (x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
  712. (x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
  713. filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
  714. y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
  715. y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
  716. pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e;  % stem
  717. pickup crisp.nib; pos8(stem,0); pos7'(stem,0);
  718. z7'=z2; x8l=x7'l; bot y8=-d;
  719. filldraw stroke z7'e--z8e;  % point
  720. if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
  721.  dish_serif(8,1,c,1/3,jut,d,1/3,jut); % lower serif
  722.  fi  % upper serif
  723. penlabels(0,1,2,3,4,5,6,7,8); endchar;
  724.  
  725.  
  726.  
  727. dcchar "Italic German letter es-zet (sharp s)";
  728. beginchar(oct"377",4.5u#+max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#);
  729. italcorr .9asc_height#*slant-u#;
  730. adjust_fit(if monospace: u# else: 0 fi,0); pickup fine.nib;
  731. z88=(.5w-2.75u,h); z89=(.5w-1.75u,-d);
  732. numeric theta; theta=angle(z88-z89);
  733. pos1(stem,0); pos2(vair,90); pos3(.5[hair,stem],180);
  734. pos4(stem,theta+90); pos5(stem,theta-90); pos6(.5[hair,stem],0);
  735. pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
  736. rt x1r=hround(w-1.5u); lft x8r=hround-.25u; x2=.5[x1,x4]; x7=.5[x8,x5];
  737. y9-.5flare=vround -.85d; bot y7r=-d-oo; y1=.5[x_height,h]; top y2r=h+oo;
  738. y4=.25[x_height,h]; y5=.5[-d,y4];
  739. z4=whatever[z88,z89]; z5=whatever[z88,z89];
  740. x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
  741. bulb(7,8,9);  % left bulb
  742. filldraw stroke z1e{up}...z2e{left}...z3e...{z89-z88}z4e;  % upper arc
  743. filldraw z4r--z5l--z5r--z4l--cycle;  % stem
  744. filldraw stroke z5e{z89-z88}...z6e...{left}z7e;  % lower arc
  745. pos11(.1[hair,curve],-30); x11l=2/3[x12l,x1l]; y11=2/3[y1,y12];
  746. pos12(.3[hair,curve],0); rt x12r=hround(w-3u); y12=.5h;
  747. pos13(.8[hair,curve],30); x13=.5[x12,x14]; y13=.5[y12,y14];
  748. pos14(curve,0); rt x14r=hround(w-.5u); y14=.2h;
  749. pos15(vair,-90); x15=.5[x14,x16]; bot y15r=-oo;
  750. pos16(hair,-180); pos17(.6[hair,flare],-180);
  751. lft x16r=hround(rt x5r+.75u); y17-.5(.6[hair,flare])=.07h;
  752. filldraw stroke z1e{down}...z11e{1.5(x12e-x11e),y12e-y11e}
  753.  ...{down}z12e...{2(x13-x12),y13-y12}z13e
  754.  ...{down}z14e...{left}z15e;  % stroke
  755. bulb(15,16,17);  % inner bulb
  756. pickup crisp.nib; pos20(bar,90); pos21(bar,90);
  757. top y20r=top y21r=x_height;
  758. lft x20=lft x4r-.5stem-u; z21=whatever[z4,z5];
  759. filldraw stroke z20e--z21e;  %  bar
  760. penlabels(1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,20,21,88,89);
  761. endchar;
  762.  
  763. endinput;
  764.